#ifndef __BUTTONS_H_
#define __BUTTONS_H_


typedef enum buttons_id_t
{
    BTN_ID_1,
    BTN_ID_2,
    BTN_ID_COUNT
} buttons_id_t;

typedef enum buttons_status_t
{
    BTN_STATUS_NON_INIT,
    BTN_STATUS_PRESSED,
    BTN_STATUS_RELEASE
} buttons_status_t;

typedef enum buttons_event_t
{
    BTN_EVENT_PRESSED = 1,
    BTN_EVENT_RELEASED = 2,
    BTN_EVENT_CLICK = 4,
    BTN_EVENT_LONG_PRESS = 8
} buttons_event_t;

typedef void (* buttons_callback_t)(int event);

void buttons_init(void);

void buttons_deinit(void);

void buttons_set_callback(buttons_id_t id, buttons_callback_t callback);

void buttons_set_values(buttons_status_t btn1_status, buttons_status_t btn2_status);


#endif
